#ifndef CLASSFEATUREPROXY_H
#define CLASSFEATUREPROXY_H



#include "AbstractItemProxy.h"



class ClassFeatureProxy : public AbstractItemProxy
{
    Q_OBJECT

public:

    enum Field
    {
        Field_FIRST = 0,
        NameField = Field_FIRST,
        ValueField,
        Field_LAST = ValueField
    };

    ClassFeatureProxy(QObject *parent = 0);

    virtual int columnCount(const QModelIndex &parent) const;

    virtual QVariant data(const QModelIndex &proxyIndex, int role) const;
    virtual bool setData(const QModelIndex &index, const QVariant &value, int role);

    virtual QVariant headerData(int section, Qt::Orientation orientation, int role) const;

    virtual Qt::ItemFlags flags(const QModelIndex &index) const;


protected slots:

    virtual void remap();


protected:

    IndexMap mapChildren(const QModelIndex& sourceReferenceIndex);

    QMap<ProxyIndex, IndexMap> m_childMap;


};

#endif // CLASSFEATUREPROXY_H
